package client;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.Serializable;

import javax.swing.JButton;
import javax.swing.JPanel;

public class InPartita extends JPanel implements ActionListener,Serializable {

	private JButton mappagen;
	private JButton listadino;
	private JButton vistalocale;
	private JButton statodino;
	private JButton cresci;
	private JButton uovo;
	private JButton muovi;
	private JButton listagiocatori;
	private JButton classifica;
	private JButton esci;
	private JButton confermaturno;
	private JButton passaturno;
	
	private int risp ;
	
	private static final int  X = 200;
	private static final int  Y = 50;
	
	public InPartita(){
		
		setLayout(new GridLayout(12,1));
		mappagen = new JButton("Mappa Generale");
		listadino = new JButton("Lista Dinosauri");
		vistalocale = new JButton("Vista locale Dinosauro");
		statodino = new JButton("Stato Dinosauro");
		cresci = new JButton("Cresci");
		uovo = new JButton("Deponi Uovo");
		muovi = new JButton("Muovi Dinosauro");
		listagiocatori = new JButton("Lista Giocatori");
		classifica = new JButton("Classifica");
		esci = new JButton("Esci");
		confermaturno = new JButton("Conferma Turno");
		passaturno = new JButton("Passa Turno");
		
		confermaturno.setBackground(Color.CYAN);
		passaturno.setBackground(Color.CYAN);
		
		mappagen.setPreferredSize(new Dimension(X, Y));
		listadino.setPreferredSize(new Dimension(X, Y));
		vistalocale.setPreferredSize(new Dimension(X, Y));
		statodino.setPreferredSize(new Dimension(X,Y));
		cresci.setPreferredSize(new Dimension(X, Y));
		uovo.setPreferredSize(new Dimension(X, Y));
		muovi.setPreferredSize(new Dimension(X, Y));
		listagiocatori.setPreferredSize(new Dimension(X, Y));
		classifica.setPreferredSize(new Dimension(X, Y));
		esci.setPreferredSize(new Dimension(X, Y));
		confermaturno.setPreferredSize(new Dimension(X, Y));
		passaturno.setPreferredSize(new Dimension(X, Y));
		
		mappagen.addActionListener(this);
		listadino.addActionListener(this);
		vistalocale.addActionListener(this);
		statodino.addActionListener(this);
		cresci.addActionListener(this);
		uovo.addActionListener(this);
		muovi.addActionListener(this);
		listagiocatori.addActionListener(this);
		classifica.addActionListener(this);
		esci.addActionListener(this);
		confermaturno.addActionListener(this);
		passaturno.addActionListener(this);
		
		add(mappagen);
		add(listadino);
		add(vistalocale);
		add(statodino);
		add(listagiocatori);
		add(classifica);
		add(cresci);
		add(uovo);
		add(muovi);
		add(esci);
		add(confermaturno);
		add(passaturno);
		
		setOpaque(false);
		
		validate();
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		synchronized(this){
			if(e.getSource().equals(mappagen)){
				risp=1;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(listadino)){
				risp=2;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(vistalocale)){
				risp=3;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(statodino)){
				risp=4;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(cresci)){
				risp=6;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(uovo)){
				risp=7;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(muovi)){
				risp=5;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(listagiocatori)){
				risp=8;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(classifica)){
				risp=9;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(esci)){
				risp=10;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(confermaturno)){
				risp=11;
				notifyAll();
			}
		}
		synchronized(this){
			if(e.getSource().equals(passaturno)){
				risp=12;
				notifyAll();
			}
		}
	}
	
	public int getRisp(){
		synchronized(this){
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		return risp;
	}
	
}
